package com.nas.crocus.dao.impl;

import java.util.Collection;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import com.nas.crocus.dao.VueloDao;
import com.nas.crocus.domain.Vuelo;

@Repository
public class VueloDaoImpl implements VueloDao {
    @Autowired
    private SessionFactory sessionFactory;
    
    @Override
    public Collection<Vuelo> buscar() {       
        Session session = sessionFactory.getCurrentSession();        
        return session.createCriteria(Vuelo.class).list();
    }

    @Override
    public Vuelo buscar(Long vueloId) {
        return (Vuelo) sessionFactory.getCurrentSession().get(Vuelo.class, vueloId);
    }

    @Override
    public void guardar(Vuelo vuelo) {
        sessionFactory.getCurrentSession().save(vuelo);  
        
    }

    @Override
    public void actualizar(Vuelo vuelo) {
        sessionFactory.getCurrentSession().update(vuelo); 
        
    }

    @Override
    public Collection<Vuelo> buscarPorRutaId(Long rutaId) {
        Session session = sessionFactory.getCurrentSession();        
        return session.createCriteria(Vuelo.class).add( Restrictions.eq("ruta.id", rutaId) ).list();
    }

    
}
